import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import * as Sentry from '@sentry/browser'
import * as Integrations from '@sentry/integrations'

// Vue.config.productionTip = false

Vue.config.errorHandler = function (err, vm, info) {
  // handle error
  // `info` 是 Vue 特定的错误信息，比如错误所在的生命周期钩子
  // 只在 2.2.0+ 可用
  console.error(info)
  console.error(err)
}
// 捕获上传异常
export const captureException = (error) => {
  if (Sentry) {
    Sentry.captureException(error);
  }
};
Sentry.init({
  dsn: 'http://dee404ad6a394124985cfa439f556301@172.17.0.11:26606/2',
  // dsn: 'http://1ca370e6c7724435a5894ae7c5256f00@172.17.0.11:26606/5',
  // dsn: 'http://dee404ad6a394124985cfa439f556301@172.17.0.11:26606/2',
  integrations: [
    new Integrations.Vue({
      Vue,
      attachProps: true
    })
  ],
  release: process.env.VUE_APP_RELEASE_VERSION// 版本 -- 可以直接在sentry中创建
})
 // 监听浏览器错误
    window.addEventListener('error', (error) => {
      captureException(error);
    });

    // 监听promise错误
    window.addEventListener('unhandledrejection', (error) => {
      captureException(error);
    });

    // Vue错误捕获
    app.config.errorHandler = (error) => {
      captureException(error);
    };
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
